<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>MolTK C++ API: moltk/units.hpp File Reference</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />

<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>

</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  <td id="projectlogo"><img alt="Logo" src="moltk55.png"/></td>
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">MolTK C++ API
   &#160;<span id="projectnumber">0.4.0</span>
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.5.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">moltk/units.hpp File Reference</div>  </div>
</div>
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="Real_8hpp_source.html">moltk/Real.hpp</a>&quot;</code><br/>
<code>#include &quot;boost/utility.hpp&quot;</code><br/>
<code>#include &lt;string&gt;</code><br/>
<code>#include &lt;cmath&gt;</code><br/>
<code>#include &lt;memory&gt;</code><br/>
<code>#include &lt;cassert&gt;</code><br/>
</div><div class="textblock"><div class="dynheader">
Include dependency graph for units.hpp:</div>
<div class="dyncontent">
<div class="center"><img src="units_8hpp__incl.png" border="0" usemap="#moltk_2units_8hpp" alt=""/></div>
<map name="moltk_2units_8hpp" id="moltk_2units_8hpp">
<area shape="rect" id="node3" href="Real_8hpp.html" title="moltk/Real.hpp" alt="" coords="5,80,115,107"/></map>
</div>
</div><div class="textblock"><div class="dynheader">
This graph shows which files directly or indirectly include this file:</div>
<div class="dyncontent">
<div class="center"><img src="units_8hpp__dep__incl.png" border="0" usemap="#moltk_2units_8hppdep" alt=""/></div>
<map name="moltk_2units_8hppdep" id="moltk_2units_8hppdep">
<area shape="rect" id="node3" href="Aligner_8hpp.html" title="moltk/Aligner.hpp" alt="" coords="5,155,128,181"/><area shape="rect" id="node5" href="MatrixScorer_8hpp.html" title="moltk/MatrixScorer.hpp" alt="" coords="71,229,228,256"/><area shape="rect" id="node9" href="Alignment_8hpp.html" title="moltk/Alignment.hpp" alt="" coords="31,80,172,107"/><area shape="rect" id="node13" href="Vector3D_8hpp.html" title="moltk/Vector3D.hpp" alt="" coords="247,80,384,107"/><area shape="rect" id="node17" href="Rotation3D_8hpp.html" title="moltk/Rotation3D.hpp" alt="" coords="396,229,543,256"/><area shape="rect" id="node7" href="moltk_8hpp.html" title="moltk.hpp" alt="" coords="287,379,365,405"/><area shape="rect" id="node15" href="Quaternion_8hpp.html" title="moltk/Quaternion.hpp" alt="" coords="353,155,500,181"/><area shape="rect" id="node19" href="RigidTransform_8hpp.html" title="moltk/RigidTransform.hpp" alt="" coords="303,304,472,331"/></map>
</div>
</div>
<p><a href="units_8hpp_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmoltk_1_1units_1_1Dimension.html">moltk::units::Dimension&lt; M, L, T, Q, N, A, I &gt;</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="structmoltk_1_1units_1_1Dimension.html" title="Dimension represents a physical dimension such as mass, length, time, etc.">Dimension</a> represents a physical dimension such as mass, length, time, etc.  <a href="structmoltk_1_1units_1_1Dimension.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmoltk_1_1units_1_1Unit.html">moltk::units::Unit&lt; D &gt;</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="structmoltk_1_1units_1_1Unit.html" title="Unit represents a unit of measure, such as gram, nanometer, or second.">Unit</a> represents a unit of measure, such as gram, nanometer, or second.  <a href="structmoltk_1_1units_1_1Unit.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structmoltk_1_1units_1_1Quantity.html">moltk::units::Quantity&lt; U, Y &gt;</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="structmoltk_1_1units_1_1Quantity.html" title="Quantity represents a physical value with a unit, such as &quot;5.6 nanometers&quot;.">Quantity</a> represents a physical value with a unit, such as "5.6 nanometers".  <a href="structmoltk_1_1units_1_1Quantity.html#details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemoltk.html">moltk</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>The moltk namespace contains everything in the MolTK C++ API. </p>
<br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemoltk_1_1units.html">moltk::units</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight"><p>The <a class="el" href="namespacemoltk_1_1units.html" title="The moltk::units namespace contains physical Quantities, Units, and Dimensions.">moltk::units</a> namespace contains physical Quantities, Units, and Dimensions. </p>
<br/></td></tr>
<tr><td colspan="2"><h2><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef Dimension&lt; 0, 0, 0, 0, 0, 0, 0 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemoltk_1_1units.html#ad1f08edba26688bdf12c25384d9155cf">moltk::units::DimensionlessDimension</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef Dimension&lt; 0, 0, 0, 0, 0, 0, 1 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemoltk_1_1units.html#a6a3fd9ad3f631a00896d41b6df7c7f32">moltk::units::InformationDimension</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef Dimension&lt; 0, 1, 0, 0, 0, 0, 0 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemoltk_1_1units.html#aff2268d3543167fc6e52aa3f139e8cfc">moltk::units::LengthDimension</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef Dimension&lt; 0, 2, 0, 0, 0, 0, 0 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemoltk_1_1units.html#ac51c0610ed480a567fe39559188231b4">moltk::units::AreaDimension</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef Dimension&lt; 0, 0, 0, 0, 0, 1, 0 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemoltk_1_1units.html#a1ae9cb3c0e169e9bc8e9f3efa345fedf">moltk::units::AngleDimension</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef Unit<br class="typebreak"/>
&lt; InformationDimension &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemoltk_1_1units.html#a7ffc3778dcfa8f3ab61be0266d7705db">moltk::units::BitUnit</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef Unit&lt; LengthDimension &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemoltk_1_1units.html#ac9eb406e7079ae577d9d15e1b4c15a72">moltk::units::NanometerUnit</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef Unit&lt; AngleDimension &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemoltk_1_1units.html#ae2600819c28aa83da74e0c57c9282044">moltk::units::RadianUnit</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef Quantity&lt; BitUnit &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemoltk_1_1units.html#a84d2541f1ab08c8ae38bea32fa7b33ca">moltk::units::Information</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Information is a quantity in units of bits.  <a href="#a84d2541f1ab08c8ae38bea32fa7b33ca"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef Quantity&lt; NanometerUnit &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemoltk_1_1units.html#a5800c5371d9ddac68ae3edf51b0e3881">moltk::units::Length</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Length is a length quantity in units of nanometers.  <a href="#a5800c5371d9ddac68ae3edf51b0e3881"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef Quantity&lt; RadianUnit &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemoltk_1_1units.html#a0f80bfeb5b82472c01b5611877ab75eb">moltk::units::Angle</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Angle is a quantity in radians.  <a href="#a0f80bfeb5b82472c01b5611877ab75eb"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemoltk_1_1units.html#afed1f2d4160617c10e7fd090f8ff7360">moltk::units::DimensionIndex</a> { <br/>
&#160;&#160;<a class="el" href="namespacemoltk_1_1units.html#afed1f2d4160617c10e7fd090f8ff7360a59e856f36fd2bfa90321ec6e432dec0d">moltk::units::DIMENSION_MASS</a>, 
<a class="el" href="namespacemoltk_1_1units.html#afed1f2d4160617c10e7fd090f8ff7360a351ee817f5459adbc77b2ec5db260e88">moltk::units::DIMENSION_LENGTH</a>, 
<a class="el" href="namespacemoltk_1_1units.html#afed1f2d4160617c10e7fd090f8ff7360a5f0d01290e7b611e552ff8319d035cf9">moltk::units::DIMENSION_TIME</a>, 
<a class="el" href="namespacemoltk_1_1units.html#afed1f2d4160617c10e7fd090f8ff7360a1346f4bcddd1ebd3f6a48487e0441bd7">moltk::units::DIMENSION_CHARGE</a>, 
<br/>
&#160;&#160;<a class="el" href="namespacemoltk_1_1units.html#afed1f2d4160617c10e7fd090f8ff7360ac99ba632ad5179828b5b8cc695cf4a15">moltk::units::DIMENSION_AMOUNT</a>, 
<a class="el" href="namespacemoltk_1_1units.html#afed1f2d4160617c10e7fd090f8ff7360af9dce97ec1ac48d83325b99f9ae02215">moltk::units::DIMENSION_ANGLE</a>, 
<a class="el" href="namespacemoltk_1_1units.html#afed1f2d4160617c10e7fd090f8ff7360a88c696a7f3b61520db07aa3e260770c6">moltk::units::DIMENSION_INFORMATION</a>
<br/>
 }</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">DimensionIndex enumerates the dimension types used by the Dimension class.  <a href="namespacemoltk_1_1units.html#afed1f2d4160617c10e7fd090f8ff7360">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemoltk_1_1units.html#a757570c1709c56d1493956f91d5ecd82">moltk::units::get_unit_symbol</a> (const BitUnit &amp;)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemoltk_1_1units.html#a482de8717eb99d9abb41ac1792bc8146">moltk::units::get_unit_name</a> (const BitUnit &amp;)</td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class Y , class D &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">Quantity&lt; Unit&lt; D &gt;, Y &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemoltk_1_1units.html#ae70e223abf96ece060ee5f9abdcd4a51">moltk::units::operator*</a> (const Y &amp;lhs, const Unit&lt; D &gt; &amp;rhs)</td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class D &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">Quantity&lt; Unit&lt; D &gt;, Real &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemoltk_1_1units.html#a8d012a0a2dfa2a1e669293bfcb153e99">moltk::units::operator*</a> (int lhs, const Unit&lt; D &gt; &amp;rhs)</td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class Y , class D &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">Quantity&lt; Unit&lt; D &gt;, Y &gt;<br class="typebreak"/>
::SquareRootType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemoltk_1_1units.html#a6bf43e6d5d5ccf3983219f867212f7f6">moltk::units::sqrt</a> (const Quantity&lt; Unit&lt; D &gt;, Y &gt; q)</td></tr>
<tr><td class="memTemplParams" colspan="2">template&lt;class D , class Y &gt; </td></tr>
<tr><td class="memTemplItemLeft" align="right" valign="top">Quantity&lt; Unit&lt; D &gt;, Y &gt;<br class="typebreak"/>
::SquareType&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="namespacemoltk_1_1units.html#ac37533c25584c87bd737f25a9e214ef5">moltk::units::operator*</a> (const Quantity&lt; Unit&lt; D &gt;, Y &gt; &amp;lhs, const Quantity&lt; Unit&lt; D &gt;, Y &gt; &amp;rhs)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">Real&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemoltk_1_1units.html#ac050671e9310a1b41bd10ceef0ffa3be">moltk::units::sin</a> (const Angle &amp;angle)</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">Real&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemoltk_1_1units.html#aee4bd73aa460f5124d4025406ead2998">moltk::units::cos</a> (const Angle &amp;angle)</td></tr>
<tr><td colspan="2"><h2><a name="var-members"></a>
Variables</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const BitUnit &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemoltk_1_1units.html#a602a3e9be116d69627ba824da7d22e72">moltk::units::bit</a> = BitUnit::get_instance()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const NanometerUnit &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemoltk_1_1units.html#afe1d41f95fc042a8d19d25b877415b2d">moltk::units::nanometer</a> = NanometerUnit::get_instance()</td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const RadianUnit &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemoltk_1_1units.html#a516154a0a09f1ce7437b739ce48e0409">moltk::units::radian</a> = RadianUnit::get_instance()</td></tr>
</table>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>



<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.5.1
</small></address>

</body>
</html>
